/**
 * 不动笔墨不读书系列
 * 理解文件系统设计思想，站在巨人肩上
 * 继续阅读
 * 计算机中的谁通常是以文件的形式保存在磁盘上的
 * 
 * 以Ext文件系统为例，深入到它底层的数据结构细节，来看看他是如何组织和使用磁盘的存储空间的
 * 
 * Ext文件系统概述
 * Ext3 较Ext2增加了日志操作支持
 * Ext4 较Ext2与Ext3进一步改进，提供了更大铜梁的支持，更大的单个文件的支持，提高了大文件操作效率
 * 以及其他一些扩展性和性能方面的改进
 * 
 * Ext文件系统的总体结构
 * 在磁盘上存储文件数据
 * 1. 如何管理整个磁盘存储空间的
 * 磁盘的整个空间是以块为单位被管理的，块也是被分配来存储数据的最小单位，一个文件即使只有一个字节，也会至少占用一个存储块
 * 
 * 内存中使用地址标记每个字节，文件系统用存储块的块号来标记每个存储块
 * 在Ext2文件系统中，可选的块大小有1kB、2KB或4KB
 * 
 * 文件系统管理的磁盘存储空间的范围，是除了保留给引导程序用的一个扇区之外的所有剩余空间
 * Ext2文件系统把它所管理的存储空间进一步分成了很多大小相同的块组，每个块组包含了固定数量的存储块
 * 
 * 要完成持久化地存储文件数据的功能，文件系统除了要保存文件的数据之外，还需要保存一些元数据 亚数据
 * 用于记录每块数据存放在何处 磁盘中已用的和空闲的存储空间有哪些，以及文件的访问属性、访问时间等
 * 文件系统还需要记录被指定的块大小、索引节点数量等信息。
 * 
 * 文件系统的设计核心就在于如何组织这些信息
 * 特殊的块组中，组织成Ext2文件系统
 * 
 * 一个块组中存储块的数量是由数据位图的标记范围来确定的
 * 
 * 大多数Linux发行版的默认的存储块大小是4KB，每4个存储块预留一个索引节点
 * 
 * 通过15个指针，将文件的内通分散在磁盘的不同位置，而不影响文件的读取和追加效率
 * 这就是Linux很少使用磁盘碎片整理程序的原因之一
 * 
 * 日志功能，先录入，再操作，操作完再删除
 * 日志功能只能保证文件系统中元数据的一致性，但是并不能保证数据的完整性
 * Ext4性能炸天，存储更高，数据完整性更好，延迟分配写完缓冲再分配 子目录数量更多 更多块与I节点数量
 * 多块同时分配 持久性预分配 新增盘区结构一组连续的块 日志校验并可关闭日志功能 启用Barrier，保证数据完整性
 * ***/